<?php

class Panier extends CFormModel {

	public $cgv=false;

	public static function getContenuPanier() {
		/*on définit une durée de 900 secondes = 15 minutes*/
		if(Yii::app()->user->getState('istimeout')=="true" &&
		(time() - Yii::app()->user->getState('timeout') > Yii::app()->params['timeOutPanier'])) {
			Yii::app()->user->setState('timeout',time());
			Yii::app()->user->setState('panier', array());
		}
			
		return Yii::app()->user->getState('panier');
	}

	public static function setContenuPanier($panier) {
		Yii::app()->user->setState('istimeout',"true");
		Yii::app()->user->setState('timeout',time());
		Yii::app()->user->setState('panier', $panier);
		return true;
	}

	public static function razContenuPanier() {
		Yii::app()->user->setState('panier', array());
	}

	public static function razTimeOutPanier() {
		Yii::app()->user->setState('istimeout',"true");
		Yii::app()->user->setState('timeout',time());
		return true;
	}

	public static function supprimerTimeOutPanier() {
		Yii::app()->user->setState('istimeout',"false");
		return true;
	}

	public function rules() {
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
		array('cgv', 'required', 'requiredValue'=>1, 'message'=>'L\'acceptation des conditions générales de ventes est obligatoire !')
		);
	}

	/**
	 * Declares attribute labels.
	 */
	public function attributeLabels() {
		return array(
			'cgv'=>"En cohant cette case, vous acceptez sans réserve les conditions générales de vente de ArtAndCo.fr",
		);
	}

	/**
	 * Montant total du panier
	 * @return int
	 */
	public static function montantGlobal() {
		$panier = Panier::getContenuPanier();
		$total=0;
		if(isset($panier)) {
			foreach($panier as $produitPanier) {
				$total += $produitPanier['qteProduit'] * $produitPanier['prixProduit'];
				$total += $produitPanier['fdpProduit'] * $produitPanier['qteProduit'];
			}
		}
		return $total;
	}

	/**
	 * Montant total du panier
	 * @return int
	 */
	public static function montantGlobalHorsFdp() {
		$panier = Panier::getContenuPanier();
		$total=0;
		if(isset($panier)) {
			foreach($panier as $produitPanier) {
				$total += $produitPanier['qteProduit'] * $produitPanier['prixProduit'];
			}
		}
		return $total;
	}

	/**
	 * Montant total du panier
	 * @return int
	 */
	public static function montantFdpGlobal() {
		$panier = Panier::getContenuPanier();
		$total=0;
		if(isset($panier)) {
			foreach($panier as $produitPanier) {
				$total += $produitPanier['fdpProduit'] * $produitPanier['qteProduit'];
			}
		}
		return $total;
	}

	/**
	 * Montant total du panier
	 * @return int
	 */
	public static function montantTvaGlobal() {
		$total = Panier::montantGlobal();
		return round($total-($total/(1+Yii::app()->params['tva']/100)),2);;
	}

	/**
	 * Montant total du panier
	 * @return int
	 */
	public static function montantParArtiste() {
		$panier = Panier::getContenuPanier();
		$total=0;
		$lesArtistes = array();
		$lesTotauxParArtistes = array();
		if(isset($panier)) {
			foreach($panier as $produitPanier) {
				$position = array_search($produitPanier['idArtiste'], $lesArtistes);
				if($position == 0) {
					array_push($lesArtistes, $produitPanier['idArtiste']);
					$totalParArtiste = 0;
					$totalFdpParArtiste = 0;
					foreach ($panier as $produitDeArtiste) {
						if($produitDeArtiste['idArtiste'] == $produitPanier['idArtiste']) {
							$totalParArtiste += ($produitDeArtiste['prixProduit']*$produitDeArtiste['qteProduit']);
							$totalFdpParArtiste += ($produitDeArtiste['fdpProduit']*$produitDeArtiste['qteProduit']);
						}
					}
					$leTotalDeArtiste['nom']=$produitPanier['nomArtiste'];
					$leTotalDeArtiste['prenom']=$produitPanier['prenomArtiste'];
					$leTotalDeArtiste['total']=$totalParArtiste+$totalFdpParArtiste;
					$leTotalDeArtiste['tva']=round($totalParArtiste-($totalParArtiste/(1+Yii::app()->params['tva']/100)),2);
					$leTotalDeArtiste['fdp']=$totalFdpParArtiste;
					$lesTotauxParArtistes[]=$leTotalDeArtiste;
				}
			}
		}
		return $lesTotauxParArtistes;
	}

	public static function timeOutPanier() {
		$secondesRestantes = Yii::app()->params['timeOutPanier'] - (time() - Yii::app()->user->getState('timeout'));
		$temp = $secondesRestantes % 3600;
		$time[0] = ( $secondesRestantes - $temp ) / 3600 ;
		$time[2] = $temp % 60 ;
		$time[1] = ( $temp - $time[2] ) / 60;

		if($time[1]>1) {
			$textMinute = "minutes";
		}
		else {
			$textMinute = "minute";
		}

		if($time[2]>1) {
			$textSeconde = "secondes";
		}
		else {
			$textSeconde = "seconde";
		}
		$retour = $time[1]." ".$textMinute;
		if($time[2] >0 ) {
			$retour = $retour." et ".$time[2]." ".$textSeconde;
		}
		return $retour;
	}
}
